package utils;

import academic.Impl.WcqAcademicDaoImpl;
import academic.dao.WcqAcademicDao;
import achievement.dao.*;
import achievement.dao.Impl.*;
import assistant.dao.CourseDao;
import assistant.dao.EvaluateDao;
import assistant.dao.StudentCourseDao;
import assistant.dao.WishDao;
import assistant.dao.daoImpl.CourseDaoImpl;
import assistant.dao.daoImpl.EvaluateDaoImpl;
import assistant.dao.daoImpl.StudentCourseDaoImpl;
import assistant.dao.daoImpl.WishDaoImpl;
import common.dao.Impl.RoleDaoImpl;
import common.dao.Impl.StudentDaoImpl;
import common.dao.RoleDao;
import common.dao.StudentDao;
import common.domain.Role;
import participation.Impl.YzxInformationDaoImpl;
import participation.Impl.YzxJudgeDaoImpl;
import participation.Impl.YzxParticipantDaoImpl;
import participation.Impl.YzxTypeDaoImpl;
import participation.dao.YzxInformationDao;
import participation.dao.YzxParticipantDao;
import participation.dao.YzxTypeDao;

public class DAOFactory {
    private static DAOFactory daoFactory;
    static {
        daoFactory = new DAOFactory();
    }
    private DAOFactory(){

    }
    public static DAOFactory getInstance(){
        return daoFactory;
    }

    public SzlBookDao getSzlBookDao(){
        return new SzlBookDaoImpl();
    }
    public SzlThesisDao getSzlThesisDao(){
        return new SzlThesisDaoImpl();
    }
    public SzlRewardDao getSzlRewardDao(){
        return new SzlRewardDaoImpl();
    }
    public SzlPlatformDao getSzlPlatformDao(){
        return new SzlPlatformDaoImpl();
    }
    public SzlPatentDao getSzlPatentDao(){
        return new SzlPatentDaoImpl();
    }
    public SzlReportDao getSzlReportDao(){
        return new SzlReportDaoImpl();
    }
    public SzlStandardDao getSzlStandardDao(){
        return new SzlStandardDaoImpl();
    }
    public SzlStudentArcDao getSzlStudentArcDao(){
        return new SzlStudentArcDaoImpl();
    }
    public SzlCheckstudentArcDao getSzlCheckstudentArcDao(){
        return new SzlCheckstudentArcDaoImpl();
    }
    public RoleDao getRoleDao(){
        return new RoleDaoImpl();
    }
    public StudentDao getStudentDao(){
        return new StudentDaoImpl();
    }

    public CourseDao getCourseDao() {
        return new CourseDaoImpl();
    }

    public EvaluateDao getEvaluateDao() {
        return new EvaluateDaoImpl();
    }
    public WishDao getWishDao() {
        return new WishDaoImpl();
    }

    public StudentCourseDao getStudentCourse() {
        return new StudentCourseDaoImpl();
    }
    public WcqAcademicDao getWcqAcademicDao() {
        return new WcqAcademicDaoImpl();
    }

    public YzxTypeDao getYzxTypeDao() {return new YzxTypeDaoImpl();}
    public YzxInformationDao getYzxInformationDao() {return new YzxInformationDaoImpl();}
    public YzxParticipantDao getYzxParticipantDao() {return new YzxParticipantDaoImpl();}
    public YzxJudgeDaoImpl getYzxJudgeDao() {return new YzxJudgeDaoImpl();}
}
